fix: Recipe slash command doesn't work with single optional parameter#6235
Merged
fix: Recipe slash command doesn't work with single optional parameter#6235
Conversation
katzdave
requested changes
Dec 22, 2025
| } | ||
| } | ||
|
|
||
| mod positional_params_tests { |
katzdave
approved these changes
Dec 22, 2025
Contributor
There was a problem hiding this comment.
Pull request overview
This PR fixes a bug where recipe slash commands with optional parameters (those having a default value) would incorrectly fail with a "missing parameters" error when invoked without providing the optional parameter. The fix modifies the validation logic in build_recipe_from_template_with_positional_params to distinguish between required and optional parameters.
- Changed parameter validation to only count parameters without defaults as required
- Updated error messages to only list required parameters
- The fix allows optional parameters to be omitted and have their defaults applied via the existing
apply_values_to_parametersfunction
lifeizhou-ap
added a commit
that referenced
this pull request
Jan 14, 2026
* main: fix: require auth when running goose on non loopback address (#6478) chore(deps): bump hono from 4.11.3 to 4.11.4 in /ui/desktop (#6485) feat(cli): graceful fallback for keyring failures (#5808) fix: support global .gooseignore and negation patterns (#6157) docs: manual config for jetbrains (#6490) fix: Recipe slash command doesn't work with single optional parameter (#6235) fix(openrouter): Handle Gemini thoughtSignature for tool calls (#6370) docs: fix extensions page (#6484) Allow customizing the new line keybinding in the CLI (#5956) Ask for permission in the CLI (#6475) docs: add Ralph Loop tutorial for multi-model iterative development (#6455) Remove gitignore fallback from gooseignore docs (#6480) fix: clean up result recording for code mode (#6343) fix(code_execution): handle model quirks with tool calls (#6352) feat(ui): support prefersBorder option for MCP Apps (#6465) fixed line breaks (#6459) Use Intl.NumberFormat for token formatting in SessionsInsights (#6466) feat(ui): format large and small token counts for readability (#6449) fix: apply subrecipes when using slash commands (#6460)
ThanhNguyxn
pushed a commit
to ThanhNguyxn/goose
that referenced
this pull request
Jan 14, 2026
…block#6235) Co-authored-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com> Co-authored-by: David Katz <dkatz@squareup.com> Signed-off-by: ThanhNguyxn <thanhnguyentuan2007@gmail.com>
zanesq
added a commit
that referenced
this pull request
Jan 14, 2026
…ased * 'main' of github.com:block/goose: fix(code_execution): serialize record_result output as JSON (#6495) perf(google): avoid accumulating thoughtSignatures across conversation history (#6462) fix(openai): make tool_call arguments optional and fix silent stream termination (#6309) fix: Improve error messages for invalid tool calls (#6483) fix: require auth when running goose on non loopback address (#6478) chore(deps): bump hono from 4.11.3 to 4.11.4 in /ui/desktop (#6485) feat(cli): graceful fallback for keyring failures (#5808) fix: support global .gooseignore and negation patterns (#6157) docs: manual config for jetbrains (#6490) fix: Recipe slash command doesn't work with single optional parameter (#6235) fix(openrouter): Handle Gemini thoughtSignature for tool calls (#6370) docs: fix extensions page (#6484) Allow customizing the new line keybinding in the CLI (#5956) Ask for permission in the CLI (#6475) docs: add Ralph Loop tutorial for multi-model iterative development (#6455) Remove gitignore fallback from gooseignore docs (#6480) fix: clean up result recording for code mode (#6343) fix(code_execution): handle model quirks with tool calls (#6352) feat(ui): support prefersBorder option for MCP Apps (#6465) fixed line breaks (#6459)
fbalicchia
pushed a commit
to fbalicchia/goose
that referenced
this pull request
Jan 23, 2026
…block#6235) Co-authored-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com> Co-authored-by: David Katz <dkatz@squareup.com> Signed-off-by: fbalicchia <fbalicchia@cuebiq.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #6232
Summary
Issue #6232 Fix Summary: Recipe slash command doesn't work with single optional parameter
Problem
Recipe slash commands with optional parameters (having
requirement: optionaland adefaultvalue) incorrectly failed with "Recipe requires 1 parameter(s): filename. Provided: 0" when invoked without providing the optional parameter.Root Cause
In
crates/goose/src/recipe/build_recipe/mod.rs, the functionbuild_recipe_from_template_with_positional_paramshad an early validation check that compared the number of provided params against the total number of recipe params, without considering whether missing params had default values.Fix
Modified the validation in
build_recipe_from_template_with_positional_paramsto:The fix changes the check from:
to:
Files Changed
crates/goose/src/recipe/build_recipe/mod.rs- Modified parameter validation logiccrates/goose/src/recipe/build_recipe/tests.rs- Added 4 new tests for positional params with optional parametersTests Added
test_positional_params_single_optional_with_default_no_args- Verifies single optional param works without argstest_positional_params_single_optional_with_default_with_arg- Verifies optional param can still be overriddentest_positional_params_required_param_missing_fails- Verifies required params still fail correctlytest_positional_params_mixed_required_and_optional- Verifies mixed required/optional params workVerification
Generated by goose Issue Solver